/**
* 推荐好友
*/

(function(){

	
	//对外推荐的接口
	//type 0:直接的推荐操作 1:发送好友申请后的推荐 2:接受好友后的推荐
	window.showRecommendedFriendDialog = function( user_id , user_name , type )
    {
        var isDirect = isUndefined( type );

        var dialog , selector;
        
        function getMessage()
        {
			//return '<div style="padding:10px;">没有可推荐的好友</div>';
		    var content = '<p class="altbox" style="padding:5px 10px;color:#000;">你推荐的好友和' + user_name + '都会收到提示，建议他们加对方为好友。</p><div style="margin-bottom:10px;"  id="rc_fr_list"></div>';
            if ( !type || type==0 )
                return content;
            else if ( type ==1 || type ==2 )
                return '<p class="altbox" style="padding:5px 10px;color:#000000;margin:0;border:none;">' + user_name + '在校内上的朋友还很少，你可以推荐一些朋友给' + user_name + '。</p>' + content;
        }
        
        function requestSuccess()
        {
            dialog.body.setContent( '<center><h1>推荐好友成功。</h1></center>' );
            setTimeout(function()
            {
                dialog.hide();
            } , 2000 );
        }

        function sendRequest()
        {
            var friends = selector.getSelectedFriends();

            if ( friends.length == 0 )
            {
                XN.DO.showError( '您还没有选择好友' );
                return;
            }
            
            dialog.body.setContent( '<center><h1>正在发送请求...</h1></center>' );
            dialog.footer.hide();

            new XN.net.xmlhttp({
                url : '/Recommended.do',
                data : 'beSuggested=' + user_id + '&recommended=' + friends.join( ',' ),
                onSuccess : requestSuccess,
                onError : function()
                {
                    dialog.hide();
                    XN.DO.showError( '发送请求失败，请尝试重试' );
                }
            })
        }

		function showDialog()
        {
            selector = new XN.ui.multiFriendSelectorBox({
                param : { guest : user_id },
                noCompleteButton : true,
                noCancelButton : true,
                url : '/recommendSelector.do',
                createInputElements : false
            });
            
            selector.addEvent( 'noFriends' , function()
            {
                dialog.body.setContent( '<center><h1>没有可以推荐的好友</h1></center>' );
                dialog.getButton( 'submit' ).setText( '关闭' );
                dialog.getButton( 'cancel' ).hide();
                setTimeout( function()
                {
                    dialog.remove();
                } , 3000 );
            });
            
            selector.addEvent( 'load' , function()
            {
                if ( !isDirect && this.data.friends.length > 0 )
                {
                    try
                    {
                        dialog.show();
                    }
                    catch(e)
                    {
                        setTimeout(function()
                        {
                            dialog.show();
                        } , 200 );
                    }
                }
            });

            dialog = XN.DO.confirm({
                title : '在好友中选出' + user_name + '认识的人',
                message : getMessage(),
                width : 500 ,
                submit : '推荐',
                callBack : function( r )
                {
                    if ( r )
                    {
                        this.preventHide();
                        sendRequest();
                    }
                    else
                    {
                        this.hide();
                    }
                }
            });
            
            //加好友或接受请求时先隐藏
            if ( !isDirect ) dialog.hide();
            
            if ( $( 'rc_fr_list' ) ) $( 'rc_fr_list' ).setContent( selector );
        }
        
        if ( !XN.ui.multiFriendSelectorBox )
        {
           XN.loadFiles([
                'http://xnimg.cn/csspro/module/friendSelector.css',
                'http://xnimg.cn/jspro/xn.ui.pager.js',
                'http://xnimg.cn/jspro/xn.ui.multiFriendSelectorBox.js'
            ], function()
            {
                showDialog();
            });
        }
        else
        {
            showDialog();
        }


	};
	
	//兼容旧版本的用户添加的额外行为,此方法为隐藏好友推荐(eval来执行用户传递的参数)
	window.requestFriendCallback=function(id){
		var node=$("friend_info_"+id);
		var hr=node.nextSibling;
		while(hr.nodeType!=1 || hr.tagName!="HR"){
			hr=hr.nextSibling;
		}
		node.style.display="none";
		hr.style.display="none";
	};
})();

